//
require(['./config'], () => {
  require(['template', 'jquery', 'header', 'footer', 'popper', 'bootstrap'], (template) => {
    class SpCart {
      constructor() {
        this.load()
      }
      load() {
        //1.判断登录状态
        const loginT = document.cookie
        const a = loginT.split('=')[1]
        if (a) {
          //2.判断购物车是否位空
          const userC = JSON.parse(localStorage.getItem('usernameList'))
          let userCart = ''
          userC.filter(item => {
            if (item.username === a) {
              userCart = item
              return userCart
            }
          })
          if (userCart.cart[0]) {
            $('.cart_empty').css('display', 'none')
            $('.cart_big').css('display', 'block')
            //不空 渲染！

            const html = template('productListss', {
              prodlist: userCart.cart
            })

            $('#clh_box').html(html)
            this.cClick()
            this.btnClick()
            this.removePro()
            //全部商品
            let allPriceBox = document.querySelectorAll('.rowCount');
            $('.all_product12').text(`(${allPriceBox.length})`)
          } else {
            //空的 显示！
            $('.cart_big').css('display', 'none')
            $('.cart_empty').css('display', 'block')
          }
        } else {
          alert('请先登录')
          window.location.href = '/html/login.html'
        }
      }
      //checkBOX全选 全部不选
      cClick() {
        let _that = this
        $('#check_box_g').on('click', function () {
          const allChecks = $('.check_box_g');
          const allLis = $('.cart_product_details');
          console.log(allLis.length)
          // console.log(allChecks)
          if ($(this).prop('checked')) {
            for (let i = 0; i < allChecks.length; i++) {
              allChecks[i].checked = true
              _that.consumer()
            }
            $('.cart_product_details').addClass('xxxbox')
            //所有的li的length
            $('.already_choose').text(allLis.length)
            $('.procdas').text(allLis.length)
            //总价 所有的小计加起来
            // console.log($('.rowCount'))
            let allPriceBox = document.querySelectorAll('.rowCount');
            console.log(allPriceBox)
          } else {
            for (let i = 0; i < allChecks.length; i++) {
              allChecks[i].checked = false
              //两个总额赋值
              $('.all_money').text('0')
              $('.all_money1').text('0')
            }
            $('.cart_product_details').removeClass('xxxbox')

            $('.already_choose').text('0')
            $('.procdas').text('0')
          }
        })

        //这个index是判断有几个check被选中
        let index = 0;
        const allChecks = $('.check_box_g');
        allChecks.on('click', function () {
          if ($(this).prop('checked')) {
            index++
            //还有当前这个li加上颜色
            $(this).parent().parent().parent().parent().parent().addClass('xxxbox')
            //已选商品赋值
          } else {
            index--
            $(this).parent().parent().parent().parent().parent().removeClass('xxxbox')
          }
          $('.already_choose').text(index)
          $('.procdas').text(index)
          if (index === allChecks.length) {
            $('#check_box_g').prop('checked', true)
          } else if (index < allChecks.length) {
            $('#check_box_g').prop('checked', false)
          }
          //拿到当前的allbox的li下标，然后遍历local 然后 出去相应的价格数组 相加 赋值给总额

        })

      }
      //加减
      btnClick() {
        $('.cpd_count').on('click', 'span', function () {
          if ($(this).prop('class') === 'cdp_sub') {
            console.log("jian")
            //1.根据商品的id查询 商品的 count 然后减
            const loginT = document.cookie
            const a = loginT.split('=')[1]
            const userC = JSON.parse(localStorage.getItem('usernameList'))
            let userCart = '';
            //当前的渲染顺序 遵从 数组的 顺序 拿到当前 li的下标即可

            let ID = $(this).parent().parent().parent().parent().parent().prop('id')
            userC.filter(item => {
              if (item.username === a) {
                userCart = item
                return userCart
              }
            })

            let newProList = ''
            //2.na到当前物品的id
            userCart.cart.filter(item => {
              if (item.id === ID) {
                newProList = item
                return newProList
              }
            })
            //loacl里面 的count -- 
            //3.拿到 渲染好的count 里面的值
            let qwe = parseInt($(this).parent().find('#allNum').val())
            console.log(qwe)
            qwe--
            newProList.count--
            console.log(newProList)

            if (newProList.count < 1) {
              newProList.count = 1
            }
            if (qwe < 1) {
              qwe = 1
            }
            $(this).parent().find('#allNum').val(qwe)
            //更新的数组加入loacl
            localStorage.setItem('usernameList', JSON.stringify(userC))
            //改变小计里面的值
            //拿到当前的单价 和 数量
            console.log(qwe)
            let danCount = $(this).parent().next().find('#onePrice').text()
            console.log(danCount)
            let tardanCount = $(this).parent().next().next().find('#rowCount').text()
            $(this).parent().next().next().find('#rowCount').text(parseInt(qwe * danCount).toFixed(2))
            //总额赋值 拿到 拿到当前的 总额 然后 然后拿到单价*数量 加起来 赋值


          } else if ($(this).prop('class') === 'cdp_add') {
            console.log("jia")
            //1.根据商品的id查询 商品的 count 然后减
            const loginT = document.cookie
            const a = loginT.split('=')[1]
            const userC = JSON.parse(localStorage.getItem('usernameList'))
            let userCart = '';
            //当前的渲染顺序 遵从 数组的 顺序 拿到当前 li的下标即可
            let ID = $(this).parent().parent().parent().parent().parent().prop('id')
            userC.filter(item => {
              if (item.username === a) {
                userCart = item
                return userCart
              }
            })
            let newProList = ''
            //2.na到当前物品的id
            userCart.cart.filter(item => {
              if (item.id === ID) {
                newProList = item
                return newProList
              }
            })
            let qwe = parseInt($(this).parent().find('#allNum').val())
            qwe++
            newProList.count++
            $(this).parent().find('#allNum').val(qwe)
            //更新的数组加入loacl
            localStorage.setItem('usernameList', JSON.stringify(userC))
            let danCount = $(this).parent().next().find('#onePrice').text()
            console.log(danCount)
            let tardanCount = $(this).parent().next().next().find('#rowCount').text()
            $(this).parent().next().next().find('#rowCount').text(parseInt(qwe * danCount).toFixed(2))
          }
        })
      }
      //页面初始化总额计算
      consumer() {
        const loginT = document.cookie
        // a 当前的用户名
        const a = loginT.split('=')[1]
        //userC 所有的用户列表
        const userC = JSON.parse(localStorage.getItem('usernameList'))
        //userCart这个是当前用户的信息
        //通过filter 方法拿到当前的用户信息
        let userCart = userC.filter(item => {
          if (item.username === a) {
            return item
          }
        })
        console.log(userCart[0].cart)

        //下一步将购物车所有的价格列加赋值给总额

        // let  allCount = userCart[0].cart.reduce((tatol,current)=>{
        //   return  tatol+(current.count*current.price -0)
        // })
        let allCount = userCart[0].cart.map(item => {
          return item.count * item.price
        })
        let allP = 0;
        for (let i = 0; i < allCount.length; i++) {
          allP += allCount[i]
        }
        console.log(allP)
        //赋值 
        $('.all_money').text(allP)
        $('.all_money1').text(allP)
      }
      //删除功能
      removePro() {
        $('.cpd_del').on('click', function () {
          const id = $(this).parent().parent().parent().parent().prop('id')

          console.log(id)
          const loginT = document.cookie
          const a = loginT.split('=')[1]
          const userC = JSON.parse(localStorage.getItem('usernameList'))
          let userCart = '';
          userC.filter(item => {
            if (item.username === a) {
              userCart = item
              return userCart
            }
          })
          //需要找到是当前物品处于购物车的下标

          //主要是id据找到商品然后删除
          let www = []
          userCart.cart.map((item) => {
            if (item.id !== id) {
              www.push(item)
              return www
            }
          })
          // console.log(www)
          userCart.cart = www
          localStorage.setItem('usernameList', JSON.stringify(userC))
          $(this).parent().parent().parent().parent().remove()
          if (!userCart.cart[0]){
            $('.cart_empty').css('display','block')
            $('.cart_big').css('display', 'none') 
            alert('先去买点儿东西吧')
            window.location.href = '/'
          }
          // if (userCart.cart[0]) {

          // } else {
          //   $('.cart_empty').css('display', 'none')
          //   $('.cart_big').css('display', 'block')

         
          // }

        })

      }
    }
    return new SpCart()
  })
})